
spi-test1:     file format elf64-x86-64


Disassembly of section .init:

0000000000001000 <_init>:
    1000:	f3 0f 1e fa          	endbr64 
    1004:	48 83 ec 08          	sub    $0x8,%rsp
    1008:	48 8b 05 c1 3f 00 00 	mov    0x3fc1(%rip),%rax        # 4fd0 <__gmon_start__>
    100f:	48 85 c0             	test   %rax,%rax
    1012:	74 02                	je     1016 <_init+0x16>
    1014:	ff d0                	callq  *%rax
    1016:	48 83 c4 08          	add    $0x8,%rsp
    101a:	c3                   	retq   

Disassembly of section .plt:

0000000000001020 <.plt>:
    1020:	ff 35 22 3f 00 00    	pushq  0x3f22(%rip)        # 4f48 <_GLOBAL_OFFSET_TABLE_+0x8>
    1026:	f2 ff 25 23 3f 00 00 	bnd jmpq *0x3f23(%rip)        # 4f50 <_GLOBAL_OFFSET_TABLE_+0x10>
    102d:	0f 1f 00             	nopl   (%rax)
    1030:	f3 0f 1e fa          	endbr64 
    1034:	68 00 00 00 00       	pushq  $0x0
    1039:	f2 e9 e1 ff ff ff    	bnd jmpq 1020 <.plt>
    103f:	90                   	nop
    1040:	f3 0f 1e fa          	endbr64 
    1044:	68 01 00 00 00       	pushq  $0x1
    1049:	f2 e9 d1 ff ff ff    	bnd jmpq 1020 <.plt>
    104f:	90                   	nop
    1050:	f3 0f 1e fa          	endbr64 
    1054:	68 02 00 00 00       	pushq  $0x2
    1059:	f2 e9 c1 ff ff ff    	bnd jmpq 1020 <.plt>
    105f:	90                   	nop
    1060:	f3 0f 1e fa          	endbr64 
    1064:	68 03 00 00 00       	pushq  $0x3
    1069:	f2 e9 b1 ff ff ff    	bnd jmpq 1020 <.plt>
    106f:	90                   	nop
    1070:	f3 0f 1e fa          	endbr64 
    1074:	68 04 00 00 00       	pushq  $0x4
    1079:	f2 e9 a1 ff ff ff    	bnd jmpq 1020 <.plt>
    107f:	90                   	nop
    1080:	f3 0f 1e fa          	endbr64 
    1084:	68 05 00 00 00       	pushq  $0x5
    1089:	f2 e9 91 ff ff ff    	bnd jmpq 1020 <.plt>
    108f:	90                   	nop
    1090:	f3 0f 1e fa          	endbr64 
    1094:	68 06 00 00 00       	pushq  $0x6
    1099:	f2 e9 81 ff ff ff    	bnd jmpq 1020 <.plt>
    109f:	90                   	nop
    10a0:	f3 0f 1e fa          	endbr64 
    10a4:	68 07 00 00 00       	pushq  $0x7
    10a9:	f2 e9 71 ff ff ff    	bnd jmpq 1020 <.plt>
    10af:	90                   	nop
    10b0:	f3 0f 1e fa          	endbr64 
    10b4:	68 08 00 00 00       	pushq  $0x8
    10b9:	f2 e9 61 ff ff ff    	bnd jmpq 1020 <.plt>
    10bf:	90                   	nop
    10c0:	f3 0f 1e fa          	endbr64 
    10c4:	68 09 00 00 00       	pushq  $0x9
    10c9:	f2 e9 51 ff ff ff    	bnd jmpq 1020 <.plt>
    10cf:	90                   	nop
    10d0:	f3 0f 1e fa          	endbr64 
    10d4:	68 0a 00 00 00       	pushq  $0xa
    10d9:	f2 e9 41 ff ff ff    	bnd jmpq 1020 <.plt>
    10df:	90                   	nop
    10e0:	f3 0f 1e fa          	endbr64 
    10e4:	68 0b 00 00 00       	pushq  $0xb
    10e9:	f2 e9 31 ff ff ff    	bnd jmpq 1020 <.plt>
    10ef:	90                   	nop
    10f0:	f3 0f 1e fa          	endbr64 
    10f4:	68 0c 00 00 00       	pushq  $0xc
    10f9:	f2 e9 21 ff ff ff    	bnd jmpq 1020 <.plt>
    10ff:	90                   	nop

Disassembly of section .plt.got:

0000000000001100 <__cxa_finalize@plt>:
    1100:	f3 0f 1e fa          	endbr64 
    1104:	f2 ff 25 d5 3e 00 00 	bnd jmpq *0x3ed5(%rip)        # 4fe0 <__cxa_finalize@GLIBC_2.2.5>
    110b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .plt.sec:

0000000000001110 <putchar@plt>:
    1110:	f3 0f 1e fa          	endbr64 
    1114:	f2 ff 25 3d 3e 00 00 	bnd jmpq *0x3e3d(%rip)        # 4f58 <putchar@GLIBC_2.2.5>
    111b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001120 <abort@plt>:
    1120:	f3 0f 1e fa          	endbr64 
    1124:	f2 ff 25 35 3e 00 00 	bnd jmpq *0x3e35(%rip)        # 4f60 <abort@GLIBC_2.2.5>
    112b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001130 <puts@plt>:
    1130:	f3 0f 1e fa          	endbr64 
    1134:	f2 ff 25 2d 3e 00 00 	bnd jmpq *0x3e2d(%rip)        # 4f68 <puts@GLIBC_2.2.5>
    113b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001140 <__stack_chk_fail@plt>:
    1140:	f3 0f 1e fa          	endbr64 
    1144:	f2 ff 25 25 3e 00 00 	bnd jmpq *0x3e25(%rip)        # 4f70 <__stack_chk_fail@GLIBC_2.4>
    114b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001150 <getopt_long@plt>:
    1150:	f3 0f 1e fa          	endbr64 
    1154:	f2 ff 25 1d 3e 00 00 	bnd jmpq *0x3e1d(%rip)        # 4f78 <getopt_long@GLIBC_2.2.5>
    115b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001160 <printf@plt>:
    1160:	f3 0f 1e fa          	endbr64 
    1164:	f2 ff 25 15 3e 00 00 	bnd jmpq *0x3e15(%rip)        # 4f80 <printf@GLIBC_2.2.5>
    116b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001170 <ioctl@plt>:
    1170:	f3 0f 1e fa          	endbr64 
    1174:	f2 ff 25 0d 3e 00 00 	bnd jmpq *0x3e0d(%rip)        # 4f88 <ioctl@GLIBC_2.2.5>
    117b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001180 <close@plt>:
    1180:	f3 0f 1e fa          	endbr64 
    1184:	f2 ff 25 05 3e 00 00 	bnd jmpq *0x3e05(%rip)        # 4f90 <close@GLIBC_2.2.5>
    118b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

0000000000001190 <read@plt>:
    1190:	f3 0f 1e fa          	endbr64 
    1194:	f2 ff 25 fd 3d 00 00 	bnd jmpq *0x3dfd(%rip)        # 4f98 <read@GLIBC_2.2.5>
    119b:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011a0 <open@plt>:
    11a0:	f3 0f 1e fa          	endbr64 
    11a4:	f2 ff 25 f5 3d 00 00 	bnd jmpq *0x3df5(%rip)        # 4fa0 <open@GLIBC_2.2.5>
    11ab:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011b0 <perror@plt>:
    11b0:	f3 0f 1e fa          	endbr64 
    11b4:	f2 ff 25 ed 3d 00 00 	bnd jmpq *0x3ded(%rip)        # 4fa8 <perror@GLIBC_2.2.5>
    11bb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011c0 <atoi@plt>:
    11c0:	f3 0f 1e fa          	endbr64 
    11c4:	f2 ff 25 e5 3d 00 00 	bnd jmpq *0x3de5(%rip)        # 4fb0 <atoi@GLIBC_2.2.5>
    11cb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000011d0 <exit@plt>:
    11d0:	f3 0f 1e fa          	endbr64 
    11d4:	f2 ff 25 dd 3d 00 00 	bnd jmpq *0x3ddd(%rip)        # 4fb8 <exit@GLIBC_2.2.5>
    11db:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

Disassembly of section .text:

00000000000011e0 <_start>:
    11e0:	f3 0f 1e fa          	endbr64 
    11e4:	31 ed                	xor    %ebp,%ebp
    11e6:	49 89 d1             	mov    %rdx,%r9
    11e9:	5e                   	pop    %rsi
    11ea:	48 89 e2             	mov    %rsp,%rdx
    11ed:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
    11f1:	50                   	push   %rax
    11f2:	54                   	push   %rsp
    11f3:	4c 8d 05 66 0f 00 00 	lea    0xf66(%rip),%r8        # 2160 <__libc_csu_fini>
    11fa:	48 8d 0d ef 0e 00 00 	lea    0xeef(%rip),%rcx        # 20f0 <__libc_csu_init>
    1201:	48 8d 3d 8d 0e 00 00 	lea    0xe8d(%rip),%rdi        # 2095 <main>
    1208:	ff 15 ba 3d 00 00    	callq  *0x3dba(%rip)        # 4fc8 <__libc_start_main@GLIBC_2.2.5>
    120e:	f4                   	hlt    
    120f:	90                   	nop

0000000000001210 <deregister_tm_clones>:
    1210:	48 8d 3d 11 3e 00 00 	lea    0x3e11(%rip),%rdi        # 5028 <optarg@@GLIBC_2.2.5>
    1217:	48 8d 05 0a 3e 00 00 	lea    0x3e0a(%rip),%rax        # 5028 <optarg@@GLIBC_2.2.5>
    121e:	48 39 f8             	cmp    %rdi,%rax
    1221:	74 15                	je     1238 <deregister_tm_clones+0x28>
    1223:	48 8b 05 96 3d 00 00 	mov    0x3d96(%rip),%rax        # 4fc0 <_ITM_deregisterTMCloneTable>
    122a:	48 85 c0             	test   %rax,%rax
    122d:	74 09                	je     1238 <deregister_tm_clones+0x28>
    122f:	ff e0                	jmpq   *%rax
    1231:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    1238:	c3                   	retq   
    1239:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001240 <register_tm_clones>:
    1240:	48 8d 3d e1 3d 00 00 	lea    0x3de1(%rip),%rdi        # 5028 <optarg@@GLIBC_2.2.5>
    1247:	48 8d 35 da 3d 00 00 	lea    0x3dda(%rip),%rsi        # 5028 <optarg@@GLIBC_2.2.5>
    124e:	48 29 fe             	sub    %rdi,%rsi
    1251:	48 89 f0             	mov    %rsi,%rax
    1254:	48 c1 ee 3f          	shr    $0x3f,%rsi
    1258:	48 c1 f8 03          	sar    $0x3,%rax
    125c:	48 01 c6             	add    %rax,%rsi
    125f:	48 d1 fe             	sar    %rsi
    1262:	74 14                	je     1278 <register_tm_clones+0x38>
    1264:	48 8b 05 6d 3d 00 00 	mov    0x3d6d(%rip),%rax        # 4fd8 <_ITM_registerTMCloneTable>
    126b:	48 85 c0             	test   %rax,%rax
    126e:	74 08                	je     1278 <register_tm_clones+0x38>
    1270:	ff e0                	jmpq   *%rax
    1272:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)
    1278:	c3                   	retq   
    1279:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

0000000000001280 <__do_global_dtors_aux>:
    1280:	f3 0f 1e fa          	endbr64 
    1284:	80 3d a5 3d 00 00 00 	cmpb   $0x0,0x3da5(%rip)        # 5030 <completed.8061>
    128b:	75 2b                	jne    12b8 <__do_global_dtors_aux+0x38>
    128d:	55                   	push   %rbp
    128e:	48 83 3d 4a 3d 00 00 	cmpq   $0x0,0x3d4a(%rip)        # 4fe0 <__cxa_finalize@GLIBC_2.2.5>
    1295:	00 
    1296:	48 89 e5             	mov    %rsp,%rbp
    1299:	74 0c                	je     12a7 <__do_global_dtors_aux+0x27>
    129b:	48 8b 3d 66 3d 00 00 	mov    0x3d66(%rip),%rdi        # 5008 <__dso_handle>
    12a2:	e8 59 fe ff ff       	callq  1100 <__cxa_finalize@plt>
    12a7:	e8 64 ff ff ff       	callq  1210 <deregister_tm_clones>
    12ac:	c6 05 7d 3d 00 00 01 	movb   $0x1,0x3d7d(%rip)        # 5030 <completed.8061>
    12b3:	5d                   	pop    %rbp
    12b4:	c3                   	retq   
    12b5:	0f 1f 00             	nopl   (%rax)
    12b8:	c3                   	retq   
    12b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)

00000000000012c0 <frame_dummy>:
    12c0:	f3 0f 1e fa          	endbr64 
    12c4:	e9 77 ff ff ff       	jmpq   1240 <register_tm_clones>

00000000000012c9 <pabort>:
    12c9:	f3 0f 1e fa          	endbr64 
    12cd:	55                   	push   %rbp
    12ce:	48 89 e5             	mov    %rsp,%rbp
    12d1:	48 83 ec 10          	sub    $0x10,%rsp
    12d5:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
    12d9:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    12dd:	48 89 c7             	mov    %rax,%rdi
    12e0:	e8 cb fe ff ff       	callq  11b0 <perror@plt>
    12e5:	e8 36 fe ff ff       	callq  1120 <abort@plt>

00000000000012ea <transfer>:
    12ea:	f3 0f 1e fa          	endbr64 
    12ee:	55                   	push   %rbp
    12ef:	48 89 e5             	mov    %rsp,%rbp
    12f2:	41 54                	push   %r12
    12f4:	53                   	push   %rbx
    12f5:	48 83 ec 30          	sub    $0x30,%rsp
    12f9:	89 7d cc             	mov    %edi,-0x34(%rbp)
    12fc:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1303:	00 00 
    1305:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
    1309:	31 c0                	xor    %eax,%eax
    130b:	c6 45 d8 00          	movb   $0x0,-0x28(%rbp)
    130f:	48 c7 45 d9 12 00 00 	movq   $0x12,-0x27(%rbp)
    1316:	00 
    1317:	c7 45 e1 00 00 00 00 	movl   $0x0,-0x1f(%rbp)
    131e:	66 c7 45 e5 00 00    	movw   $0x0,-0x1b(%rbp)
    1324:	c6 45 e7 00          	movb   $0x0,-0x19(%rbp)
    1328:	48 8d 4d d9          	lea    -0x27(%rbp),%rcx
    132c:	8b 45 cc             	mov    -0x34(%rbp),%eax
    132f:	ba 05 00 00 00       	mov    $0x5,%edx
    1334:	48 89 ce             	mov    %rcx,%rsi
    1337:	89 c7                	mov    %eax,%edi
    1339:	e8 52 fe ff ff       	callq  1190 <read@plt>
    133e:	0f b6 45 e3          	movzbl -0x1d(%rbp),%eax
    1342:	44 0f b6 d8          	movzbl %al,%r11d
    1346:	0f b6 45 e2          	movzbl -0x1e(%rbp),%eax
    134a:	44 0f b6 d0          	movzbl %al,%r10d
    134e:	0f b6 45 e1          	movzbl -0x1f(%rbp),%eax
    1352:	44 0f b6 c8          	movzbl %al,%r9d
    1356:	0f b6 45 e0          	movzbl -0x20(%rbp),%eax
    135a:	44 0f b6 c0          	movzbl %al,%r8d
    135e:	0f b6 45 df          	movzbl -0x21(%rbp),%eax
    1362:	0f b6 f8             	movzbl %al,%edi
    1365:	0f b6 45 de          	movzbl -0x22(%rbp),%eax
    1369:	0f b6 f0             	movzbl %al,%esi
    136c:	0f b6 45 da          	movzbl -0x26(%rbp),%eax
    1370:	44 0f b6 e0          	movzbl %al,%r12d
    1374:	0f b6 45 db          	movzbl -0x25(%rbp),%eax
    1378:	0f b6 d8             	movzbl %al,%ebx
    137b:	0f b6 45 dc          	movzbl -0x24(%rbp),%eax
    137f:	0f b6 c8             	movzbl %al,%ecx
    1382:	0f b6 45 dd          	movzbl -0x23(%rbp),%eax
    1386:	0f b6 d0             	movzbl %al,%edx
    1389:	0f b6 45 d9          	movzbl -0x27(%rbp),%eax
    138d:	0f b6 c0             	movzbl %al,%eax
    1390:	41 53                	push   %r11
    1392:	41 52                	push   %r10
    1394:	41 51                	push   %r9
    1396:	41 50                	push   %r8
    1398:	57                   	push   %rdi
    1399:	56                   	push   %rsi
    139a:	45 89 e1             	mov    %r12d,%r9d
    139d:	41 89 d8             	mov    %ebx,%r8d
    13a0:	89 c6                	mov    %eax,%esi
    13a2:	48 8d 3d 6f 1c 00 00 	lea    0x1c6f(%rip),%rdi        # 3018 <_IO_stdin_used+0x18>
    13a9:	b8 00 00 00 00       	mov    $0x0,%eax
    13ae:	e8 ad fd ff ff       	callq  1160 <printf@plt>
    13b3:	48 83 c4 30          	add    $0x30,%rsp
    13b7:	90                   	nop
    13b8:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
    13bc:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    13c3:	00 00 
    13c5:	74 05                	je     13cc <transfer+0xe2>
    13c7:	e8 74 fd ff ff       	callq  1140 <__stack_chk_fail@plt>
    13cc:	48 8d 65 f0          	lea    -0x10(%rbp),%rsp
    13d0:	5b                   	pop    %rbx
    13d1:	41 5c                	pop    %r12
    13d3:	5d                   	pop    %rbp
    13d4:	c3                   	retq   

00000000000013d5 <print_usage>:
    13d5:	f3 0f 1e fa          	endbr64 
    13d9:	55                   	push   %rbp
    13da:	48 89 e5             	mov    %rsp,%rbp
    13dd:	48 83 ec 10          	sub    $0x10,%rsp
    13e1:	48 89 7d f8          	mov    %rdi,-0x8(%rbp)
    13e5:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    13e9:	48 89 c6             	mov    %rax,%rsi
    13ec:	48 8d 3d 74 1c 00 00 	lea    0x1c74(%rip),%rdi        # 3067 <_IO_stdin_used+0x67>
    13f3:	b8 00 00 00 00       	mov    $0x0,%eax
    13f8:	e8 63 fd ff ff       	callq  1160 <printf@plt>
    13fd:	48 8d 3d 7c 1c 00 00 	lea    0x1c7c(%rip),%rdi        # 3080 <_IO_stdin_used+0x80>
    1404:	e8 27 fd ff ff       	callq  1130 <puts@plt>
    1409:	bf 01 00 00 00       	mov    $0x1,%edi
    140e:	e8 bd fd ff ff       	callq  11d0 <exit@plt>

0000000000001413 <parse_opts>:
    1413:	f3 0f 1e fa          	endbr64 
    1417:	55                   	push   %rbp
    1418:	48 89 e5             	mov    %rsp,%rbp
    141b:	48 83 ec 20          	sub    $0x20,%rsp
    141f:	89 7d ec             	mov    %edi,-0x14(%rbp)
    1422:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
    1426:	48 8b 75 e0          	mov    -0x20(%rbp),%rsi
    142a:	8b 45 ec             	mov    -0x14(%rbp),%eax
    142d:	41 b8 00 00 00 00    	mov    $0x0,%r8d
    1433:	48 8d 0d 66 37 00 00 	lea    0x3766(%rip),%rcx        # 4ba0 <lopts.3660>
    143a:	48 8d 15 9f 1d 00 00 	lea    0x1d9f(%rip),%rdx        # 31e0 <_IO_stdin_used+0x1e0>
    1441:	89 c7                	mov    %eax,%edi
    1443:	e8 08 fd ff ff       	callq  1150 <getopt_long@plt>
    1448:	89 45 fc             	mov    %eax,-0x4(%rbp)
    144b:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    144f:	0f 84 3c 01 00 00    	je     1591 <parse_opts+0x17e>
    1455:	8b 45 fc             	mov    -0x4(%rbp),%eax
    1458:	83 e8 33             	sub    $0x33,%eax
    145b:	83 f8 40             	cmp    $0x40,%eax
    145e:	0f 87 18 01 00 00    	ja     157c <parse_opts+0x169>
    1464:	89 c0                	mov    %eax,%eax
    1466:	48 8d 14 85 00 00 00 	lea    0x0(,%rax,4),%rdx
    146d:	00 
    146e:	48 8d 05 7f 1d 00 00 	lea    0x1d7f(%rip),%rax        # 31f4 <_IO_stdin_used+0x1f4>
    1475:	8b 04 02             	mov    (%rdx,%rax,1),%eax
    1478:	48 98                	cltq   
    147a:	48 8d 15 73 1d 00 00 	lea    0x1d73(%rip),%rdx        # 31f4 <_IO_stdin_used+0x1f4>
    1481:	48 01 d0             	add    %rdx,%rax
    1484:	3e ff e0             	notrack jmpq *%rax
    1487:	48 8b 05 9a 3b 00 00 	mov    0x3b9a(%rip),%rax        # 5028 <optarg@@GLIBC_2.2.5>
    148e:	48 89 05 8b 3b 00 00 	mov    %rax,0x3b8b(%rip)        # 5020 <device>
    1495:	e9 f2 00 00 00       	jmpq   158c <parse_opts+0x179>
    149a:	48 8b 05 87 3b 00 00 	mov    0x3b87(%rip),%rax        # 5028 <optarg@@GLIBC_2.2.5>
    14a1:	48 89 c7             	mov    %rax,%rdi
    14a4:	e8 17 fd ff ff       	callq  11c0 <atoi@plt>
    14a9:	89 05 69 3b 00 00    	mov    %eax,0x3b69(%rip)        # 5018 <speed>
    14af:	e9 d8 00 00 00       	jmpq   158c <parse_opts+0x179>
    14b4:	48 8b 05 6d 3b 00 00 	mov    0x3b6d(%rip),%rax        # 5028 <optarg@@GLIBC_2.2.5>
    14bb:	48 89 c7             	mov    %rax,%rdi
    14be:	e8 fd fc ff ff       	callq  11c0 <atoi@plt>
    14c3:	66 89 05 6a 3b 00 00 	mov    %ax,0x3b6a(%rip)        # 5034 <delay>
    14ca:	e9 bd 00 00 00       	jmpq   158c <parse_opts+0x179>
    14cf:	48 8b 05 52 3b 00 00 	mov    0x3b52(%rip),%rax        # 5028 <optarg@@GLIBC_2.2.5>
    14d6:	48 89 c7             	mov    %rax,%rdi
    14d9:	e8 e2 fc ff ff       	callq  11c0 <atoi@plt>
    14de:	88 05 30 3b 00 00    	mov    %al,0x3b30(%rip)        # 5014 <bits>
    14e4:	e9 a3 00 00 00       	jmpq   158c <parse_opts+0x179>
    14e9:	0f b6 05 42 3b 00 00 	movzbl 0x3b42(%rip),%eax        # 5032 <mode>
    14f0:	83 c8 20             	or     $0x20,%eax
    14f3:	88 05 39 3b 00 00    	mov    %al,0x3b39(%rip)        # 5032 <mode>
    14f9:	e9 8e 00 00 00       	jmpq   158c <parse_opts+0x179>
    14fe:	0f b6 05 2d 3b 00 00 	movzbl 0x3b2d(%rip),%eax        # 5032 <mode>
    1505:	83 c8 01             	or     $0x1,%eax
    1508:	88 05 24 3b 00 00    	mov    %al,0x3b24(%rip)        # 5032 <mode>
    150e:	eb 7c                	jmp    158c <parse_opts+0x179>
    1510:	0f b6 05 1b 3b 00 00 	movzbl 0x3b1b(%rip),%eax        # 5032 <mode>
    1517:	83 c8 02             	or     $0x2,%eax
    151a:	88 05 12 3b 00 00    	mov    %al,0x3b12(%rip)        # 5032 <mode>
    1520:	eb 6a                	jmp    158c <parse_opts+0x179>
    1522:	0f b6 05 09 3b 00 00 	movzbl 0x3b09(%rip),%eax        # 5032 <mode>
    1529:	83 c8 08             	or     $0x8,%eax
    152c:	88 05 00 3b 00 00    	mov    %al,0x3b00(%rip)        # 5032 <mode>
    1532:	eb 58                	jmp    158c <parse_opts+0x179>
    1534:	0f b6 05 f7 3a 00 00 	movzbl 0x3af7(%rip),%eax        # 5032 <mode>
    153b:	83 c8 04             	or     $0x4,%eax
    153e:	88 05 ee 3a 00 00    	mov    %al,0x3aee(%rip)        # 5032 <mode>
    1544:	eb 46                	jmp    158c <parse_opts+0x179>
    1546:	0f b6 05 e5 3a 00 00 	movzbl 0x3ae5(%rip),%eax        # 5032 <mode>
    154d:	83 c8 10             	or     $0x10,%eax
    1550:	88 05 dc 3a 00 00    	mov    %al,0x3adc(%rip)        # 5032 <mode>
    1556:	eb 34                	jmp    158c <parse_opts+0x179>
    1558:	0f b6 05 d3 3a 00 00 	movzbl 0x3ad3(%rip),%eax        # 5032 <mode>
    155f:	83 c8 40             	or     $0x40,%eax
    1562:	88 05 ca 3a 00 00    	mov    %al,0x3aca(%rip)        # 5032 <mode>
    1568:	eb 22                	jmp    158c <parse_opts+0x179>
    156a:	0f b6 05 c1 3a 00 00 	movzbl 0x3ac1(%rip),%eax        # 5032 <mode>
    1571:	83 c8 80             	or     $0xffffff80,%eax
    1574:	88 05 b8 3a 00 00    	mov    %al,0x3ab8(%rip)        # 5032 <mode>
    157a:	eb 10                	jmp    158c <parse_opts+0x179>
    157c:	48 8b 45 e0          	mov    -0x20(%rbp),%rax
    1580:	48 8b 00             	mov    (%rax),%rax
    1583:	48 89 c7             	mov    %rax,%rdi
    1586:	e8 4a fe ff ff       	callq  13d5 <print_usage>
    158b:	90                   	nop
    158c:	e9 95 fe ff ff       	jmpq   1426 <parse_opts+0x13>
    1591:	90                   	nop
    1592:	90                   	nop
    1593:	c9                   	leaveq 
    1594:	c3                   	retq   

0000000000001595 <dwt_readfromdevice>:
    1595:	f3 0f 1e fa          	endbr64 
    1599:	55                   	push   %rbp
    159a:	48 89 e5             	mov    %rsp,%rbp
    159d:	48 83 ec 30          	sub    $0x30,%rsp
    15a1:	89 f0                	mov    %esi,%eax
    15a3:	48 89 55 e0          	mov    %rdx,-0x20(%rbp)
    15a7:	48 89 4d d8          	mov    %rcx,-0x28(%rbp)
    15ab:	89 fa                	mov    %edi,%edx
    15ad:	88 55 ec             	mov    %dl,-0x14(%rbp)
    15b0:	88 45 e8             	mov    %al,-0x18(%rbp)
    15b3:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    15ba:	00 00 
    15bc:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    15c0:	31 c0                	xor    %eax,%eax
    15c2:	66 c7 45 f5 00 00    	movw   $0x0,-0xb(%rbp)
    15c8:	c6 45 f7 00          	movb   $0x0,-0x9(%rbp)
    15cc:	66 c7 45 f2 00 00    	movw   $0x0,-0xe(%rbp)
    15d2:	0f b6 45 ec          	movzbl -0x14(%rbp),%eax
    15d6:	89 c6                	mov    %eax,%esi
    15d8:	48 8d 3d 19 1d 00 00 	lea    0x1d19(%rip),%rdi        # 32f8 <_IO_stdin_used+0x2f8>
    15df:	b8 00 00 00 00       	mov    $0x0,%eax
    15e4:	e8 77 fb ff ff       	callq  1160 <printf@plt>
    15e9:	80 7d e8 00          	cmpb   $0x0,-0x18(%rbp)
    15ed:	75 1a                	jne    1609 <dwt_readfromdevice+0x74>
    15ef:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    15f3:	8d 50 01             	lea    0x1(%rax),%edx
    15f6:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    15fa:	0f b7 c0             	movzwl %ax,%eax
    15fd:	48 98                	cltq   
    15ff:	0f b6 55 ec          	movzbl -0x14(%rbp),%edx
    1603:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1607:	eb 73                	jmp    167c <dwt_readfromdevice+0xe7>
    1609:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    160d:	8d 50 01             	lea    0x1(%rax),%edx
    1610:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    1614:	0f b7 c0             	movzwl %ax,%eax
    1617:	0f b6 55 ec          	movzbl -0x14(%rbp),%edx
    161b:	83 ca 40             	or     $0x40,%edx
    161e:	48 98                	cltq   
    1620:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1624:	0f b6 45 e8          	movzbl -0x18(%rbp),%eax
    1628:	84 c0                	test   %al,%al
    162a:	78 1a                	js     1646 <dwt_readfromdevice+0xb1>
    162c:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1630:	8d 50 01             	lea    0x1(%rax),%edx
    1633:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    1637:	0f b7 c0             	movzwl %ax,%eax
    163a:	48 98                	cltq   
    163c:	0f b6 55 e8          	movzbl -0x18(%rbp),%edx
    1640:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1644:	eb 36                	jmp    167c <dwt_readfromdevice+0xe7>
    1646:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    164a:	8d 50 01             	lea    0x1(%rax),%edx
    164d:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    1651:	0f b7 c0             	movzwl %ax,%eax
    1654:	0f b6 55 e8          	movzbl -0x18(%rbp),%edx
    1658:	83 ca 80             	or     $0xffffff80,%edx
    165b:	48 98                	cltq   
    165d:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1661:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1665:	8d 50 01             	lea    0x1(%rax),%edx
    1668:	66 89 55 f2          	mov    %dx,-0xe(%rbp)
    166c:	0f b7 c0             	movzwl %ax,%eax
    166f:	0f b6 55 e8          	movzbl -0x18(%rbp),%edx
    1673:	c0 ea 07             	shr    $0x7,%dl
    1676:	48 98                	cltq   
    1678:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    167c:	0f b6 45 f7          	movzbl -0x9(%rbp),%eax
    1680:	0f b6 f0             	movzbl %al,%esi
    1683:	0f b6 45 f6          	movzbl -0xa(%rbp),%eax
    1687:	0f b6 c8             	movzbl %al,%ecx
    168a:	0f b6 45 f5          	movzbl -0xb(%rbp),%eax
    168e:	0f b6 d0             	movzbl %al,%edx
    1691:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    1695:	41 89 f0             	mov    %esi,%r8d
    1698:	89 c6                	mov    %eax,%esi
    169a:	48 8d 3d 7f 1c 00 00 	lea    0x1c7f(%rip),%rdi        # 3320 <_IO_stdin_used+0x320>
    16a1:	b8 00 00 00 00       	mov    $0x0,%eax
    16a6:	e8 b5 fa ff ff       	callq  1160 <printf@plt>
    16ab:	0f b7 45 f2          	movzwl -0xe(%rbp),%eax
    16af:	0f b6 c0             	movzbl %al,%eax
    16b2:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
    16b6:	48 8b 55 e0          	mov    -0x20(%rbp),%rdx
    16ba:	48 8d 75 f5          	lea    -0xb(%rbp),%rsi
    16be:	89 c7                	mov    %eax,%edi
    16c0:	e8 16 00 00 00       	callq  16db <readfrom_spi_serial>
    16c5:	48 8b 7d f8          	mov    -0x8(%rbp),%rdi
    16c9:	64 48 33 3c 25 28 00 	xor    %fs:0x28,%rdi
    16d0:	00 00 
    16d2:	74 05                	je     16d9 <dwt_readfromdevice+0x144>
    16d4:	e8 67 fa ff ff       	callq  1140 <__stack_chk_fail@plt>
    16d9:	c9                   	leaveq 
    16da:	c3                   	retq   

00000000000016db <readfrom_spi_serial>:
    16db:	f3 0f 1e fa          	endbr64 
    16df:	55                   	push   %rbp
    16e0:	48 89 e5             	mov    %rsp,%rbp
    16e3:	48 83 c4 80          	add    $0xffffffffffffff80,%rsp
    16e7:	89 f8                	mov    %edi,%eax
    16e9:	48 89 75 90          	mov    %rsi,-0x70(%rbp)
    16ed:	48 89 55 88          	mov    %rdx,-0x78(%rbp)
    16f1:	48 89 4d 80          	mov    %rcx,-0x80(%rbp)
    16f5:	88 45 9c             	mov    %al,-0x64(%rbp)
    16f8:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    16ff:	00 00 
    1701:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1705:	31 c0                	xor    %eax,%eax
    1707:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    170e:	00 
    170f:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    1716:	00 
    1717:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%rbp)
    171e:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%rbp)
    1725:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%rbp)
    172c:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    1730:	89 c0                	mov    %eax,%eax
    1732:	48 89 45 b0          	mov    %rax,-0x50(%rbp)
    1736:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    173a:	89 c0                	mov    %eax,%eax
    173c:	48 89 45 b8          	mov    %rax,-0x48(%rbp)
    1740:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1744:	48 8b 55 88          	mov    -0x78(%rbp),%rdx
    1748:	01 d0                	add    %edx,%eax
    174a:	89 45 c0             	mov    %eax,-0x40(%rbp)
    174d:	c7 45 c4 20 a1 07 00 	movl   $0x7a120,-0x3c(%rbp)
    1754:	c6 45 ca 08          	movb   $0x8,-0x36(%rbp)
    1758:	66 c7 45 c8 64 00    	movw   $0x64,-0x38(%rbp)
    175e:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%rbp)
    1765:	eb 1d                	jmp    1784 <readfrom_spi_serial+0xa9>
    1767:	8b 45 a8             	mov    -0x58(%rbp),%eax
    176a:	48 63 d0             	movslq %eax,%rdx
    176d:	48 8b 45 90          	mov    -0x70(%rbp),%rax
    1771:	48 01 d0             	add    %rdx,%rax
    1774:	0f b6 10             	movzbl (%rax),%edx
    1777:	8b 45 a8             	mov    -0x58(%rbp),%eax
    177a:	48 98                	cltq   
    177c:	88 54 05 d0          	mov    %dl,-0x30(%rbp,%rax,1)
    1780:	83 45 a8 01          	addl   $0x1,-0x58(%rbp)
    1784:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1788:	39 45 a8             	cmp    %eax,-0x58(%rbp)
    178b:	7c da                	jl     1767 <readfrom_spi_serial+0x8c>
    178d:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%rbp)
    1794:	eb 4a                	jmp    17e0 <readfrom_spi_serial+0x105>
    1796:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    1799:	48 98                	cltq   
    179b:	0f b6 44 05 d0       	movzbl -0x30(%rbp,%rax,1),%eax
    17a0:	0f b6 c0             	movzbl %al,%eax
    17a3:	89 c6                	mov    %eax,%esi
    17a5:	48 8d 3d 8e 1b 00 00 	lea    0x1b8e(%rip),%rdi        # 333a <_IO_stdin_used+0x33a>
    17ac:	b8 00 00 00 00       	mov    $0x0,%eax
    17b1:	e8 aa f9 ff ff       	callq  1160 <printf@plt>
    17b6:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    17b9:	48 63 d0             	movslq %eax,%rdx
    17bc:	48 8b 45 90          	mov    -0x70(%rbp),%rax
    17c0:	48 01 d0             	add    %rdx,%rax
    17c3:	0f b6 00             	movzbl (%rax),%eax
    17c6:	0f b6 c0             	movzbl %al,%eax
    17c9:	89 c6                	mov    %eax,%esi
    17cb:	48 8d 3d 74 1b 00 00 	lea    0x1b74(%rip),%rdi        # 3346 <_IO_stdin_used+0x346>
    17d2:	b8 00 00 00 00       	mov    $0x0,%eax
    17d7:	e8 84 f9 ff ff       	callq  1160 <printf@plt>
    17dc:	83 45 a4 01          	addl   $0x1,-0x5c(%rbp)
    17e0:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    17e4:	39 45 a4             	cmp    %eax,-0x5c(%rbp)
    17e7:	7c ad                	jl     1796 <readfrom_spi_serial+0xbb>
    17e9:	8b 05 21 38 00 00    	mov    0x3821(%rip),%eax        # 5010 <fd>
    17ef:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
    17f3:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    17f8:	89 c7                	mov    %eax,%edi
    17fa:	b8 00 00 00 00       	mov    $0x0,%eax
    17ff:	e8 6c f9 ff ff       	callq  1170 <ioctl@plt>
    1804:	89 45 ac             	mov    %eax,-0x54(%rbp)
    1807:	83 7d ac 00          	cmpl   $0x0,-0x54(%rbp)
    180b:	7f 0c                	jg     1819 <readfrom_spi_serial+0x13e>
    180d:	48 8d 3d 47 1b 00 00 	lea    0x1b47(%rip),%rdi        # 335b <_IO_stdin_used+0x35b>
    1814:	e8 b0 fa ff ff       	callq  12c9 <pabort>
    1819:	48 8d 3d 52 1b 00 00 	lea    0x1b52(%rip),%rdi        # 3372 <_IO_stdin_used+0x372>
    1820:	b8 00 00 00 00       	mov    $0x0,%eax
    1825:	e8 36 f9 ff ff       	callq  1160 <printf@plt>
    182a:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%rbp)
    1831:	eb 24                	jmp    1857 <readfrom_spi_serial+0x17c>
    1833:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    1836:	48 98                	cltq   
    1838:	0f b6 44 05 e0       	movzbl -0x20(%rbp,%rax,1),%eax
    183d:	0f b6 c0             	movzbl %al,%eax
    1840:	89 c6                	mov    %eax,%esi
    1842:	48 8d 3d 33 1b 00 00 	lea    0x1b33(%rip),%rdi        # 337c <_IO_stdin_used+0x37c>
    1849:	b8 00 00 00 00       	mov    $0x0,%eax
    184e:	e8 0d f9 ff ff       	callq  1160 <printf@plt>
    1853:	83 45 a4 01          	addl   $0x1,-0x5c(%rbp)
    1857:	83 7d a4 0f          	cmpl   $0xf,-0x5c(%rbp)
    185b:	7e d6                	jle    1833 <readfrom_spi_serial+0x158>
    185d:	bf 0a 00 00 00       	mov    $0xa,%edi
    1862:	e8 a9 f8 ff ff       	callq  1110 <putchar@plt>
    1867:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    186b:	89 45 a4             	mov    %eax,-0x5c(%rbp)
    186e:	eb 45                	jmp    18b5 <readfrom_spi_serial+0x1da>
    1870:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    1873:	48 98                	cltq   
    1875:	0f b6 44 05 e0       	movzbl -0x20(%rbp,%rax,1),%eax
    187a:	0f b6 c0             	movzbl %al,%eax
    187d:	89 c6                	mov    %eax,%esi
    187f:	48 8d 3d fc 1a 00 00 	lea    0x1afc(%rip),%rdi        # 3382 <_IO_stdin_used+0x382>
    1886:	b8 00 00 00 00       	mov    $0x0,%eax
    188b:	e8 d0 f8 ff ff       	callq  1160 <printf@plt>
    1890:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1894:	8b 55 a4             	mov    -0x5c(%rbp),%edx
    1897:	29 c2                	sub    %eax,%edx
    1899:	89 d0                	mov    %edx,%eax
    189b:	48 63 d0             	movslq %eax,%rdx
    189e:	48 8b 45 80          	mov    -0x80(%rbp),%rax
    18a2:	48 01 c2             	add    %rax,%rdx
    18a5:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    18a8:	48 98                	cltq   
    18aa:	0f b6 44 05 e0       	movzbl -0x20(%rbp,%rax,1),%eax
    18af:	88 02                	mov    %al,(%rdx)
    18b1:	83 45 a4 01          	addl   $0x1,-0x5c(%rbp)
    18b5:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    18b8:	48 98                	cltq   
    18ba:	0f b6 4d 9c          	movzbl -0x64(%rbp),%ecx
    18be:	48 8b 55 88          	mov    -0x78(%rbp),%rdx
    18c2:	48 01 ca             	add    %rcx,%rdx
    18c5:	48 39 d0             	cmp    %rdx,%rax
    18c8:	72 a6                	jb     1870 <readfrom_spi_serial+0x195>
    18ca:	b8 00 00 00 00       	mov    $0x0,%eax
    18cf:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    18d3:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    18da:	00 00 
    18dc:	74 05                	je     18e3 <readfrom_spi_serial+0x208>
    18de:	e8 5d f8 ff ff       	callq  1140 <__stack_chk_fail@plt>
    18e3:	c9                   	leaveq 
    18e4:	c3                   	retq   

00000000000018e5 <dwt_writetodevice>:
    18e5:	f3 0f 1e fa          	endbr64 
    18e9:	55                   	push   %rbp
    18ea:	48 89 e5             	mov    %rsp,%rbp
    18ed:	48 83 ec 30          	sub    $0x30,%rsp
    18f1:	89 7d ec             	mov    %edi,-0x14(%rbp)
    18f4:	89 75 e8             	mov    %esi,-0x18(%rbp)
    18f7:	89 55 e4             	mov    %edx,-0x1c(%rbp)
    18fa:	48 89 4d d8          	mov    %rcx,-0x28(%rbp)
    18fe:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1905:	00 00 
    1907:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    190b:	31 c0                	xor    %eax,%eax
    190d:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%rbp)
    1914:	83 7d e8 00          	cmpl   $0x0,-0x18(%rbp)
    1918:	75 1b                	jne    1935 <dwt_writetodevice+0x50>
    191a:	8b 45 ec             	mov    -0x14(%rbp),%eax
    191d:	89 c1                	mov    %eax,%ecx
    191f:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1922:	8d 50 01             	lea    0x1(%rax),%edx
    1925:	89 55 f0             	mov    %edx,-0x10(%rbp)
    1928:	83 c9 80             	or     $0xffffff80,%ecx
    192b:	89 ca                	mov    %ecx,%edx
    192d:	48 98                	cltq   
    192f:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1933:	eb 65                	jmp    199a <dwt_writetodevice+0xb5>
    1935:	8b 45 ec             	mov    -0x14(%rbp),%eax
    1938:	89 c1                	mov    %eax,%ecx
    193a:	8b 45 f0             	mov    -0x10(%rbp),%eax
    193d:	8d 50 01             	lea    0x1(%rax),%edx
    1940:	89 55 f0             	mov    %edx,-0x10(%rbp)
    1943:	83 c9 c0             	or     $0xffffffc0,%ecx
    1946:	89 ca                	mov    %ecx,%edx
    1948:	48 98                	cltq   
    194a:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    194e:	83 7d e8 7f          	cmpl   $0x7f,-0x18(%rbp)
    1952:	77 14                	ja     1968 <dwt_writetodevice+0x83>
    1954:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1957:	8d 50 01             	lea    0x1(%rax),%edx
    195a:	89 55 f0             	mov    %edx,-0x10(%rbp)
    195d:	8b 55 e8             	mov    -0x18(%rbp),%edx
    1960:	48 98                	cltq   
    1962:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1966:	eb 32                	jmp    199a <dwt_writetodevice+0xb5>
    1968:	8b 45 e8             	mov    -0x18(%rbp),%eax
    196b:	89 c1                	mov    %eax,%ecx
    196d:	8b 45 f0             	mov    -0x10(%rbp),%eax
    1970:	8d 50 01             	lea    0x1(%rax),%edx
    1973:	89 55 f0             	mov    %edx,-0x10(%rbp)
    1976:	83 c9 80             	or     $0xffffff80,%ecx
    1979:	89 ca                	mov    %ecx,%edx
    197b:	48 98                	cltq   
    197d:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    1981:	8b 45 e8             	mov    -0x18(%rbp),%eax
    1984:	c1 e8 07             	shr    $0x7,%eax
    1987:	89 c1                	mov    %eax,%ecx
    1989:	8b 45 f0             	mov    -0x10(%rbp),%eax
    198c:	8d 50 01             	lea    0x1(%rax),%edx
    198f:	89 55 f0             	mov    %edx,-0x10(%rbp)
    1992:	89 ca                	mov    %ecx,%edx
    1994:	48 98                	cltq   
    1996:	88 54 05 f5          	mov    %dl,-0xb(%rbp,%rax,1)
    199a:	0f b6 45 f7          	movzbl -0x9(%rbp),%eax
    199e:	0f b6 f0             	movzbl %al,%esi
    19a1:	0f b6 45 f6          	movzbl -0xa(%rbp),%eax
    19a5:	0f b6 c8             	movzbl %al,%ecx
    19a8:	0f b6 45 f5          	movzbl -0xb(%rbp),%eax
    19ac:	0f b6 d0             	movzbl %al,%edx
    19af:	8b 45 f0             	mov    -0x10(%rbp),%eax
    19b2:	41 89 f0             	mov    %esi,%r8d
    19b5:	89 c6                	mov    %eax,%esi
    19b7:	48 8d 3d da 19 00 00 	lea    0x19da(%rip),%rdi        # 3398 <_IO_stdin_used+0x398>
    19be:	b8 00 00 00 00       	mov    $0x0,%eax
    19c3:	e8 98 f7 ff ff       	callq  1160 <printf@plt>
    19c8:	8b 45 f0             	mov    -0x10(%rbp),%eax
    19cb:	0f b6 c0             	movzbl %al,%eax
    19ce:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
    19d2:	8b 55 e4             	mov    -0x1c(%rbp),%edx
    19d5:	48 8d 75 f5          	lea    -0xb(%rbp),%rsi
    19d9:	89 c7                	mov    %eax,%edi
    19db:	e8 16 00 00 00       	callq  19f6 <writetospi_serial>
    19e0:	48 8b 7d f8          	mov    -0x8(%rbp),%rdi
    19e4:	64 48 33 3c 25 28 00 	xor    %fs:0x28,%rdi
    19eb:	00 00 
    19ed:	74 05                	je     19f4 <dwt_writetodevice+0x10f>
    19ef:	e8 4c f7 ff ff       	callq  1140 <__stack_chk_fail@plt>
    19f4:	c9                   	leaveq 
    19f5:	c3                   	retq   

00000000000019f6 <writetospi_serial>:
    19f6:	f3 0f 1e fa          	endbr64 
    19fa:	55                   	push   %rbp
    19fb:	48 89 e5             	mov    %rsp,%rbp
    19fe:	48 83 c4 80          	add    $0xffffffffffffff80,%rsp
    1a02:	89 f8                	mov    %edi,%eax
    1a04:	48 89 75 90          	mov    %rsi,-0x70(%rbp)
    1a08:	89 55 98             	mov    %edx,-0x68(%rbp)
    1a0b:	48 89 4d 88          	mov    %rcx,-0x78(%rbp)
    1a0f:	88 45 9c             	mov    %al,-0x64(%rbp)
    1a12:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1a19:	00 00 
    1a1b:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1a1f:	31 c0                	xor    %eax,%eax
    1a21:	48 c7 45 d0 00 00 00 	movq   $0x0,-0x30(%rbp)
    1a28:	00 
    1a29:	48 c7 45 d8 00 00 00 	movq   $0x0,-0x28(%rbp)
    1a30:	00 
    1a31:	48 c7 45 e0 00 00 00 	movq   $0x0,-0x20(%rbp)
    1a38:	00 
    1a39:	48 c7 45 e8 00 00 00 	movq   $0x0,-0x18(%rbp)
    1a40:	00 
    1a41:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%rbp)
    1a48:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%rbp)
    1a4f:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%rbp)
    1a56:	48 8d 45 d0          	lea    -0x30(%rbp),%rax
    1a5a:	89 c0                	mov    %eax,%eax
    1a5c:	48 89 45 b0          	mov    %rax,-0x50(%rbp)
    1a60:	48 8d 45 e0          	lea    -0x20(%rbp),%rax
    1a64:	89 c0                	mov    %eax,%eax
    1a66:	48 89 45 b8          	mov    %rax,-0x48(%rbp)
    1a6a:	0f b6 55 9c          	movzbl -0x64(%rbp),%edx
    1a6e:	8b 45 98             	mov    -0x68(%rbp),%eax
    1a71:	01 d0                	add    %edx,%eax
    1a73:	89 45 c0             	mov    %eax,-0x40(%rbp)
    1a76:	c7 45 c4 20 a1 07 00 	movl   $0x7a120,-0x3c(%rbp)
    1a7d:	c6 45 ca 08          	movb   $0x8,-0x36(%rbp)
    1a81:	66 c7 45 c8 64 00    	movw   $0x64,-0x38(%rbp)
    1a87:	0f b6 55 9c          	movzbl -0x64(%rbp),%edx
    1a8b:	8b 45 98             	mov    -0x68(%rbp),%eax
    1a8e:	8d 0c 02             	lea    (%rdx,%rax,1),%ecx
    1a91:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1a95:	8b 55 98             	mov    -0x68(%rbp),%edx
    1a98:	89 c6                	mov    %eax,%esi
    1a9a:	48 8d 3d 17 19 00 00 	lea    0x1917(%rip),%rdi        # 33b8 <_IO_stdin_used+0x3b8>
    1aa1:	b8 00 00 00 00       	mov    $0x0,%eax
    1aa6:	e8 b5 f6 ff ff       	callq  1160 <printf@plt>
    1aab:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%rbp)
    1ab2:	eb 1d                	jmp    1ad1 <writetospi_serial+0xdb>
    1ab4:	8b 45 a8             	mov    -0x58(%rbp),%eax
    1ab7:	48 63 d0             	movslq %eax,%rdx
    1aba:	48 8b 45 90          	mov    -0x70(%rbp),%rax
    1abe:	48 01 d0             	add    %rdx,%rax
    1ac1:	0f b6 10             	movzbl (%rax),%edx
    1ac4:	8b 45 a8             	mov    -0x58(%rbp),%eax
    1ac7:	48 98                	cltq   
    1ac9:	88 54 05 d0          	mov    %dl,-0x30(%rbp,%rax,1)
    1acd:	83 45 a8 01          	addl   $0x1,-0x58(%rbp)
    1ad1:	0f b6 45 9c          	movzbl -0x64(%rbp),%eax
    1ad5:	39 45 a8             	cmp    %eax,-0x58(%rbp)
    1ad8:	7c da                	jl     1ab4 <writetospi_serial+0xbe>
    1ada:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%rbp)
    1ae1:	eb 24                	jmp    1b07 <writetospi_serial+0x111>
    1ae3:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    1ae6:	48 63 d0             	movslq %eax,%rdx
    1ae9:	48 8b 45 88          	mov    -0x78(%rbp),%rax
    1aed:	48 8d 0c 02          	lea    (%rdx,%rax,1),%rcx
    1af1:	8b 45 a8             	mov    -0x58(%rbp),%eax
    1af4:	8d 50 01             	lea    0x1(%rax),%edx
    1af7:	89 55 a8             	mov    %edx,-0x58(%rbp)
    1afa:	0f b6 11             	movzbl (%rcx),%edx
    1afd:	48 98                	cltq   
    1aff:	88 54 05 d0          	mov    %dl,-0x30(%rbp,%rax,1)
    1b03:	83 45 a4 01          	addl   $0x1,-0x5c(%rbp)
    1b07:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    1b0a:	39 45 98             	cmp    %eax,-0x68(%rbp)
    1b0d:	77 d4                	ja     1ae3 <writetospi_serial+0xed>
    1b0f:	48 8d 3d b6 18 00 00 	lea    0x18b6(%rip),%rdi        # 33cc <_IO_stdin_used+0x3cc>
    1b16:	b8 00 00 00 00       	mov    $0x0,%eax
    1b1b:	e8 40 f6 ff ff       	callq  1160 <printf@plt>
    1b20:	c7 45 a4 00 00 00 00 	movl   $0x0,-0x5c(%rbp)
    1b27:	eb 24                	jmp    1b4d <writetospi_serial+0x157>
    1b29:	8b 45 a4             	mov    -0x5c(%rbp),%eax
    1b2c:	48 98                	cltq   
    1b2e:	0f b6 44 05 d0       	movzbl -0x30(%rbp,%rax,1),%eax
    1b33:	0f b6 c0             	movzbl %al,%eax
    1b36:	89 c6                	mov    %eax,%esi
    1b38:	48 8d 3d 3d 18 00 00 	lea    0x183d(%rip),%rdi        # 337c <_IO_stdin_used+0x37c>
    1b3f:	b8 00 00 00 00       	mov    $0x0,%eax
    1b44:	e8 17 f6 ff ff       	callq  1160 <printf@plt>
    1b49:	83 45 a4 01          	addl   $0x1,-0x5c(%rbp)
    1b4d:	83 7d a4 0f          	cmpl   $0xf,-0x5c(%rbp)
    1b51:	7e d6                	jle    1b29 <writetospi_serial+0x133>
    1b53:	bf 0a 00 00 00       	mov    $0xa,%edi
    1b58:	e8 b3 f5 ff ff       	callq  1110 <putchar@plt>
    1b5d:	8b 05 ad 34 00 00    	mov    0x34ad(%rip),%eax        # 5010 <fd>
    1b63:	48 8d 55 b0          	lea    -0x50(%rbp),%rdx
    1b67:	be 00 6b 20 40       	mov    $0x40206b00,%esi
    1b6c:	89 c7                	mov    %eax,%edi
    1b6e:	b8 00 00 00 00       	mov    $0x0,%eax
    1b73:	e8 f8 f5 ff ff       	callq  1170 <ioctl@plt>
    1b78:	89 45 ac             	mov    %eax,-0x54(%rbp)
    1b7b:	83 7d ac 00          	cmpl   $0x0,-0x54(%rbp)
    1b7f:	7f 0c                	jg     1b8d <writetospi_serial+0x197>
    1b81:	48 8d 3d d3 17 00 00 	lea    0x17d3(%rip),%rdi        # 335b <_IO_stdin_used+0x35b>
    1b88:	e8 3c f7 ff ff       	callq  12c9 <pabort>
    1b8d:	90                   	nop
    1b8e:	48 8b 75 f8          	mov    -0x8(%rbp),%rsi
    1b92:	64 48 33 34 25 28 00 	xor    %fs:0x28,%rsi
    1b99:	00 00 
    1b9b:	74 05                	je     1ba2 <writetospi_serial+0x1ac>
    1b9d:	e8 9e f5 ff ff       	callq  1140 <__stack_chk_fail@plt>
    1ba2:	c9                   	leaveq 
    1ba3:	c3                   	retq   

0000000000001ba4 <read_test>:
    1ba4:	f3 0f 1e fa          	endbr64 
    1ba8:	55                   	push   %rbp
    1ba9:	48 89 e5             	mov    %rsp,%rbp
    1bac:	48 83 ec 20          	sub    $0x20,%rsp
    1bb0:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1bb7:	00 00 
    1bb9:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1bbd:	31 c0                	xor    %eax,%eax
    1bbf:	48 c7 45 f0 00 00 00 	movq   $0x0,-0x10(%rbp)
    1bc6:	00 
    1bc7:	c6 45 ef 08          	movb   $0x8,-0x11(%rbp)
    1bcb:	0f b6 45 ef          	movzbl -0x11(%rbp),%eax
    1bcf:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
    1bd3:	48 89 d1             	mov    %rdx,%rcx
    1bd6:	48 89 c2             	mov    %rax,%rdx
    1bd9:	be 00 00 00 00       	mov    $0x0,%esi
    1bde:	bf 08 00 00 00       	mov    $0x8,%edi
    1be3:	e8 ad f9 ff ff       	callq  1595 <dwt_readfromdevice>
    1be8:	c6 45 ee 00          	movb   $0x0,-0x12(%rbp)
    1bec:	eb 2b                	jmp    1c19 <read_test+0x75>
    1bee:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    1bf2:	48 98                	cltq   
    1bf4:	0f b6 44 05 f0       	movzbl -0x10(%rbp,%rax,1),%eax
    1bf9:	0f b6 c0             	movzbl %al,%eax
    1bfc:	89 c6                	mov    %eax,%esi
    1bfe:	48 8d 3d d2 17 00 00 	lea    0x17d2(%rip),%rdi        # 33d7 <_IO_stdin_used+0x3d7>
    1c05:	b8 00 00 00 00       	mov    $0x0,%eax
    1c0a:	e8 51 f5 ff ff       	callq  1160 <printf@plt>
    1c0f:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    1c13:	83 c0 01             	add    $0x1,%eax
    1c16:	88 45 ee             	mov    %al,-0x12(%rbp)
    1c19:	0f b6 45 ee          	movzbl -0x12(%rbp),%eax
    1c1d:	3a 45 ef             	cmp    -0x11(%rbp),%al
    1c20:	72 cc                	jb     1bee <read_test+0x4a>
    1c22:	90                   	nop
    1c23:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1c27:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    1c2e:	00 00 
    1c30:	74 05                	je     1c37 <read_test+0x93>
    1c32:	e8 09 f5 ff ff       	callq  1140 <__stack_chk_fail@plt>
    1c37:	c9                   	leaveq 
    1c38:	c3                   	retq   

0000000000001c39 <write_test>:
    1c39:	f3 0f 1e fa          	endbr64 
    1c3d:	55                   	push   %rbp
    1c3e:	48 89 e5             	mov    %rsp,%rbp
    1c41:	48 83 ec 20          	sub    $0x20,%rsp
    1c45:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1c4c:	00 00 
    1c4e:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1c52:	31 c0                	xor    %eax,%eax
    1c54:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%rbp)
    1c5b:	48 c7 45 f0 00 00 00 	movq   $0x0,-0x10(%rbp)
    1c62:	00 
    1c63:	c6 45 ed 07          	movb   $0x7,-0x13(%rbp)
    1c67:	c6 45 ec aa          	movb   $0xaa,-0x14(%rbp)
    1c6b:	48 8d 45 ec          	lea    -0x14(%rbp),%rax
    1c6f:	48 89 c1             	mov    %rax,%rcx
    1c72:	ba 02 00 00 00       	mov    $0x2,%edx
    1c77:	be 04 00 00 00       	mov    $0x4,%esi
    1c7c:	bf 2d 00 00 00       	mov    $0x2d,%edi
    1c81:	e8 5f fc ff ff       	callq  18e5 <dwt_writetodevice>
    1c86:	c6 45 eb 04          	movb   $0x4,-0x15(%rbp)
    1c8a:	0f b6 45 eb          	movzbl -0x15(%rbp),%eax
    1c8e:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
    1c92:	48 89 d1             	mov    %rdx,%rcx
    1c95:	48 89 c2             	mov    %rax,%rdx
    1c98:	be 04 00 00 00       	mov    $0x4,%esi
    1c9d:	bf 2d 00 00 00       	mov    $0x2d,%edi
    1ca2:	e8 ee f8 ff ff       	callq  1595 <dwt_readfromdevice>
    1ca7:	c6 45 ea 00          	movb   $0x0,-0x16(%rbp)
    1cab:	eb 2b                	jmp    1cd8 <write_test+0x9f>
    1cad:	0f b6 45 ea          	movzbl -0x16(%rbp),%eax
    1cb1:	48 98                	cltq   
    1cb3:	0f b6 44 05 f0       	movzbl -0x10(%rbp,%rax,1),%eax
    1cb8:	0f b6 c0             	movzbl %al,%eax
    1cbb:	89 c6                	mov    %eax,%esi
    1cbd:	48 8d 3d 13 17 00 00 	lea    0x1713(%rip),%rdi        # 33d7 <_IO_stdin_used+0x3d7>
    1cc4:	b8 00 00 00 00       	mov    $0x0,%eax
    1cc9:	e8 92 f4 ff ff       	callq  1160 <printf@plt>
    1cce:	0f b6 45 ea          	movzbl -0x16(%rbp),%eax
    1cd2:	83 c0 01             	add    $0x1,%eax
    1cd5:	88 45 ea             	mov    %al,-0x16(%rbp)
    1cd8:	0f b6 45 ea          	movzbl -0x16(%rbp),%eax
    1cdc:	3a 45 eb             	cmp    -0x15(%rbp),%al
    1cdf:	72 cc                	jb     1cad <write_test+0x74>
    1ce1:	c6 45 ef 11          	movb   $0x11,-0x11(%rbp)
    1ce5:	c6 45 ee 22          	movb   $0x22,-0x12(%rbp)
    1ce9:	c6 45 ed 33          	movb   $0x33,-0x13(%rbp)
    1ced:	c6 45 ec 44          	movb   $0x44,-0x14(%rbp)
    1cf1:	48 8d 45 ec          	lea    -0x14(%rbp),%rax
    1cf5:	48 89 c1             	mov    %rax,%rcx
    1cf8:	ba 04 00 00 00       	mov    $0x4,%edx
    1cfd:	be 00 00 00 00       	mov    $0x0,%esi
    1d02:	bf 2d 00 00 00       	mov    $0x2d,%edi
    1d07:	e8 d9 fb ff ff       	callq  18e5 <dwt_writetodevice>
    1d0c:	c6 45 eb 04          	movb   $0x4,-0x15(%rbp)
    1d10:	0f b6 45 eb          	movzbl -0x15(%rbp),%eax
    1d14:	48 8d 55 f0          	lea    -0x10(%rbp),%rdx
    1d18:	48 89 d1             	mov    %rdx,%rcx
    1d1b:	48 89 c2             	mov    %rax,%rdx
    1d1e:	be 00 00 00 00       	mov    $0x0,%esi
    1d23:	bf 2d 00 00 00       	mov    $0x2d,%edi
    1d28:	e8 68 f8 ff ff       	callq  1595 <dwt_readfromdevice>
    1d2d:	c6 45 ea 00          	movb   $0x0,-0x16(%rbp)
    1d31:	eb 2b                	jmp    1d5e <write_test+0x125>
    1d33:	0f b6 45 ea          	movzbl -0x16(%rbp),%eax
    1d37:	48 98                	cltq   
    1d39:	0f b6 44 05 f0       	movzbl -0x10(%rbp,%rax,1),%eax
    1d3e:	0f b6 c0             	movzbl %al,%eax
    1d41:	89 c6                	mov    %eax,%esi
    1d43:	48 8d 3d 8d 16 00 00 	lea    0x168d(%rip),%rdi        # 33d7 <_IO_stdin_used+0x3d7>
    1d4a:	b8 00 00 00 00       	mov    $0x0,%eax
    1d4f:	e8 0c f4 ff ff       	callq  1160 <printf@plt>
    1d54:	0f b6 45 ea          	movzbl -0x16(%rbp),%eax
    1d58:	83 c0 01             	add    $0x1,%eax
    1d5b:	88 45 ea             	mov    %al,-0x16(%rbp)
    1d5e:	0f b6 45 ea          	movzbl -0x16(%rbp),%eax
    1d62:	3a 45 eb             	cmp    -0x15(%rbp),%al
    1d65:	72 cc                	jb     1d33 <write_test+0xfa>
    1d67:	90                   	nop
    1d68:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1d6c:	64 48 33 04 25 28 00 	xor    %fs:0x28,%rax
    1d73:	00 00 
    1d75:	74 05                	je     1d7c <write_test+0x143>
    1d77:	e8 c4 f3 ff ff       	callq  1140 <__stack_chk_fail@plt>
    1d7c:	c9                   	leaveq 
    1d7d:	c3                   	retq   

0000000000001d7e <dwt_read32bitoffsetreg>:
    1d7e:	f3 0f 1e fa          	endbr64 
    1d82:	55                   	push   %rbp
    1d83:	48 89 e5             	mov    %rsp,%rbp
    1d86:	48 83 ec 30          	sub    $0x30,%rsp
    1d8a:	89 7d dc             	mov    %edi,-0x24(%rbp)
    1d8d:	89 75 d8             	mov    %esi,-0x28(%rbp)
    1d90:	64 48 8b 04 25 28 00 	mov    %fs:0x28,%rax
    1d97:	00 00 
    1d99:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1d9d:	31 c0                	xor    %eax,%eax
    1d9f:	48 c7 45 e8 ff ff ff 	movq   $0xffffffffffffffff,-0x18(%rbp)
    1da6:	ff 
    1da7:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%rbp)
    1dae:	8b 45 d8             	mov    -0x28(%rbp),%eax
    1db1:	0f b6 f0             	movzbl %al,%esi
    1db4:	8b 45 dc             	mov    -0x24(%rbp),%eax
    1db7:	0f b6 c0             	movzbl %al,%eax
    1dba:	48 8d 55 f4          	lea    -0xc(%rbp),%rdx
    1dbe:	48 89 d1             	mov    %rdx,%rcx
    1dc1:	ba 04 00 00 00       	mov    $0x4,%edx
    1dc6:	89 c7                	mov    %eax,%edi
    1dc8:	e8 c8 f7 ff ff       	callq  1595 <dwt_readfromdevice>
    1dcd:	89 45 e4             	mov    %eax,-0x1c(%rbp)
    1dd0:	83 7d e4 00          	cmpl   $0x0,-0x1c(%rbp)
    1dd4:	75 32                	jne    1e08 <dwt_read32bitoffsetreg+0x8a>
    1dd6:	c7 45 e0 03 00 00 00 	movl   $0x3,-0x20(%rbp)
    1ddd:	eb 23                	jmp    1e02 <dwt_read32bitoffsetreg+0x84>
    1ddf:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
    1de3:	48 c1 e0 08          	shl    $0x8,%rax
    1de7:	48 89 c2             	mov    %rax,%rdx
    1dea:	8b 45 e0             	mov    -0x20(%rbp),%eax
    1ded:	48 98                	cltq   
    1def:	0f b6 44 05 f4       	movzbl -0xc(%rbp,%rax,1),%eax
    1df4:	0f b6 c0             	movzbl %al,%eax
    1df7:	48 01 d0             	add    %rdx,%rax
    1dfa:	48 89 45 e8          	mov    %rax,-0x18(%rbp)
    1dfe:	83 6d e0 01          	subl   $0x1,-0x20(%rbp)
    1e02:	83 7d e0 00          	cmpl   $0x0,-0x20(%rbp)
    1e06:	79 d7                	jns    1ddf <dwt_read32bitoffsetreg+0x61>
    1e08:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
    1e0c:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
    1e10:	64 48 33 0c 25 28 00 	xor    %fs:0x28,%rcx
    1e17:	00 00 
    1e19:	74 05                	je     1e20 <dwt_read32bitoffsetreg+0xa2>
    1e1b:	e8 20 f3 ff ff       	callq  1140 <__stack_chk_fail@plt>
    1e20:	c9                   	leaveq 
    1e21:	c3                   	retq   

0000000000001e22 <instancereaddeviceid>:
    1e22:	f3 0f 1e fa          	endbr64 
    1e26:	55                   	push   %rbp
    1e27:	48 89 e5             	mov    %rsp,%rbp
    1e2a:	e8 02 00 00 00       	callq  1e31 <dwt_readdevid>
    1e2f:	5d                   	pop    %rbp
    1e30:	c3                   	retq   

0000000000001e31 <dwt_readdevid>:
    1e31:	f3 0f 1e fa          	endbr64 
    1e35:	55                   	push   %rbp
    1e36:	48 89 e5             	mov    %rsp,%rbp
    1e39:	be 00 00 00 00       	mov    $0x0,%esi
    1e3e:	bf 00 00 00 00       	mov    $0x0,%edi
    1e43:	e8 36 ff ff ff       	callq  1d7e <dwt_read32bitoffsetreg>
    1e48:	5d                   	pop    %rbp
    1e49:	c3                   	retq   

0000000000001e4a <id>:
    1e4a:	f3 0f 1e fa          	endbr64 
    1e4e:	55                   	push   %rbp
    1e4f:	48 89 e5             	mov    %rsp,%rbp
    1e52:	48 83 ec 10          	sub    $0x10,%rsp
    1e56:	e8 c7 ff ff ff       	callq  1e22 <instancereaddeviceid>
    1e5b:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
    1e5f:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
    1e63:	48 89 c6             	mov    %rax,%rsi
    1e66:	48 8d 3d 7d 15 00 00 	lea    0x157d(%rip),%rdi        # 33ea <_IO_stdin_used+0x3ea>
    1e6d:	b8 00 00 00 00       	mov    $0x0,%eax
    1e72:	e8 e9 f2 ff ff       	callq  1160 <printf@plt>
    1e77:	90                   	nop
    1e78:	c9                   	leaveq 
    1e79:	c3                   	retq   

0000000000001e7a <spi_init_test>:
    1e7a:	f3 0f 1e fa          	endbr64 
    1e7e:	55                   	push   %rbp
    1e7f:	48 89 e5             	mov    %rsp,%rbp
    1e82:	48 83 ec 20          	sub    $0x20,%rsp
    1e86:	89 7d ec             	mov    %edi,-0x14(%rbp)
    1e89:	48 89 75 e0          	mov    %rsi,-0x20(%rbp)
    1e8d:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%rbp)
    1e94:	48 8b 55 e0          	mov    -0x20(%rbp),%rdx
    1e98:	8b 45 ec             	mov    -0x14(%rbp),%eax
    1e9b:	48 89 d6             	mov    %rdx,%rsi
    1e9e:	89 c7                	mov    %eax,%edi
    1ea0:	e8 6e f5 ff ff       	callq  1413 <parse_opts>
    1ea5:	48 8b 05 74 31 00 00 	mov    0x3174(%rip),%rax        # 5020 <device>
    1eac:	be 02 00 00 00       	mov    $0x2,%esi
    1eb1:	48 89 c7             	mov    %rax,%rdi
    1eb4:	b8 00 00 00 00       	mov    $0x0,%eax
    1eb9:	e8 e2 f2 ff ff       	callq  11a0 <open@plt>
    1ebe:	89 05 4c 31 00 00    	mov    %eax,0x314c(%rip)        # 5010 <fd>
    1ec4:	8b 05 46 31 00 00    	mov    0x3146(%rip),%eax        # 5010 <fd>
    1eca:	85 c0                	test   %eax,%eax
    1ecc:	79 0c                	jns    1eda <spi_init_test+0x60>
    1ece:	48 8d 3d 24 15 00 00 	lea    0x1524(%rip),%rdi        # 33f9 <_IO_stdin_used+0x3f9>
    1ed5:	e8 ef f3 ff ff       	callq  12c9 <pabort>
    1eda:	48 8b 05 3f 31 00 00 	mov    0x313f(%rip),%rax        # 5020 <device>
    1ee1:	48 89 c6             	mov    %rax,%rsi
    1ee4:	48 8d 3d 20 15 00 00 	lea    0x1520(%rip),%rdi        # 340b <_IO_stdin_used+0x40b>
    1eeb:	b8 00 00 00 00       	mov    $0x0,%eax
    1ef0:	e8 6b f2 ff ff       	callq  1160 <printf@plt>
    1ef5:	8b 05 15 31 00 00    	mov    0x3115(%rip),%eax        # 5010 <fd>
    1efb:	48 8d 15 30 31 00 00 	lea    0x3130(%rip),%rdx        # 5032 <mode>
    1f02:	be 01 6b 01 40       	mov    $0x40016b01,%esi
    1f07:	89 c7                	mov    %eax,%edi
    1f09:	b8 00 00 00 00       	mov    $0x0,%eax
    1f0e:	e8 5d f2 ff ff       	callq  1170 <ioctl@plt>
    1f13:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1f16:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    1f1a:	75 0c                	jne    1f28 <spi_init_test+0xae>
    1f1c:	48 8d 3d 01 15 00 00 	lea    0x1501(%rip),%rdi        # 3424 <_IO_stdin_used+0x424>
    1f23:	e8 a1 f3 ff ff       	callq  12c9 <pabort>
    1f28:	8b 05 e2 30 00 00    	mov    0x30e2(%rip),%eax        # 5010 <fd>
    1f2e:	48 8d 15 fd 30 00 00 	lea    0x30fd(%rip),%rdx        # 5032 <mode>
    1f35:	be 01 6b 01 80       	mov    $0x80016b01,%esi
    1f3a:	89 c7                	mov    %eax,%edi
    1f3c:	b8 00 00 00 00       	mov    $0x0,%eax
    1f41:	e8 2a f2 ff ff       	callq  1170 <ioctl@plt>
    1f46:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1f49:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    1f4d:	75 0c                	jne    1f5b <spi_init_test+0xe1>
    1f4f:	48 8d 3d e1 14 00 00 	lea    0x14e1(%rip),%rdi        # 3437 <_IO_stdin_used+0x437>
    1f56:	e8 6e f3 ff ff       	callq  12c9 <pabort>
    1f5b:	8b 05 af 30 00 00    	mov    0x30af(%rip),%eax        # 5010 <fd>
    1f61:	48 8d 15 ac 30 00 00 	lea    0x30ac(%rip),%rdx        # 5014 <bits>
    1f68:	be 03 6b 01 40       	mov    $0x40016b03,%esi
    1f6d:	89 c7                	mov    %eax,%edi
    1f6f:	b8 00 00 00 00       	mov    $0x0,%eax
    1f74:	e8 f7 f1 ff ff       	callq  1170 <ioctl@plt>
    1f79:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1f7c:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    1f80:	75 0c                	jne    1f8e <spi_init_test+0x114>
    1f82:	48 8d 3d c1 14 00 00 	lea    0x14c1(%rip),%rdi        # 344a <_IO_stdin_used+0x44a>
    1f89:	e8 3b f3 ff ff       	callq  12c9 <pabort>
    1f8e:	8b 05 7c 30 00 00    	mov    0x307c(%rip),%eax        # 5010 <fd>
    1f94:	48 8d 15 79 30 00 00 	lea    0x3079(%rip),%rdx        # 5014 <bits>
    1f9b:	be 03 6b 01 80       	mov    $0x80016b03,%esi
    1fa0:	89 c7                	mov    %eax,%edi
    1fa2:	b8 00 00 00 00       	mov    $0x0,%eax
    1fa7:	e8 c4 f1 ff ff       	callq  1170 <ioctl@plt>
    1fac:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1faf:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    1fb3:	75 0c                	jne    1fc1 <spi_init_test+0x147>
    1fb5:	48 8d 3d a6 14 00 00 	lea    0x14a6(%rip),%rdi        # 3462 <_IO_stdin_used+0x462>
    1fbc:	e8 08 f3 ff ff       	callq  12c9 <pabort>
    1fc1:	8b 05 49 30 00 00    	mov    0x3049(%rip),%eax        # 5010 <fd>
    1fc7:	48 8d 15 4a 30 00 00 	lea    0x304a(%rip),%rdx        # 5018 <speed>
    1fce:	be 04 6b 04 40       	mov    $0x40046b04,%esi
    1fd3:	89 c7                	mov    %eax,%edi
    1fd5:	b8 00 00 00 00       	mov    $0x0,%eax
    1fda:	e8 91 f1 ff ff       	callq  1170 <ioctl@plt>
    1fdf:	89 45 fc             	mov    %eax,-0x4(%rbp)
    1fe2:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    1fe6:	75 0c                	jne    1ff4 <spi_init_test+0x17a>
    1fe8:	48 8d 3d 8b 14 00 00 	lea    0x148b(%rip),%rdi        # 347a <_IO_stdin_used+0x47a>
    1fef:	e8 d5 f2 ff ff       	callq  12c9 <pabort>
    1ff4:	8b 05 16 30 00 00    	mov    0x3016(%rip),%eax        # 5010 <fd>
    1ffa:	48 8d 15 17 30 00 00 	lea    0x3017(%rip),%rdx        # 5018 <speed>
    2001:	be 04 6b 04 80       	mov    $0x80046b04,%esi
    2006:	89 c7                	mov    %eax,%edi
    2008:	b8 00 00 00 00       	mov    $0x0,%eax
    200d:	e8 5e f1 ff ff       	callq  1170 <ioctl@plt>
    2012:	89 45 fc             	mov    %eax,-0x4(%rbp)
    2015:	83 7d fc ff          	cmpl   $0xffffffff,-0x4(%rbp)
    2019:	75 0c                	jne    2027 <spi_init_test+0x1ad>
    201b:	48 8d 3d 6f 14 00 00 	lea    0x146f(%rip),%rdi        # 3491 <_IO_stdin_used+0x491>
    2022:	e8 a2 f2 ff ff       	callq  12c9 <pabort>
    2027:	0f b6 05 04 30 00 00 	movzbl 0x3004(%rip),%eax        # 5032 <mode>
    202e:	0f b6 c0             	movzbl %al,%eax
    2031:	89 c6                	mov    %eax,%esi
    2033:	48 8d 3d 6e 14 00 00 	lea    0x146e(%rip),%rdi        # 34a8 <_IO_stdin_used+0x4a8>
    203a:	b8 00 00 00 00       	mov    $0x0,%eax
    203f:	e8 1c f1 ff ff       	callq  1160 <printf@plt>
    2044:	0f b6 05 c9 2f 00 00 	movzbl 0x2fc9(%rip),%eax        # 5014 <bits>
    204b:	0f b6 c0             	movzbl %al,%eax
    204e:	89 c6                	mov    %eax,%esi
    2050:	48 8d 3d 5f 14 00 00 	lea    0x145f(%rip),%rdi        # 34b6 <_IO_stdin_used+0x4b6>
    2057:	b8 00 00 00 00       	mov    $0x0,%eax
    205c:	e8 ff f0 ff ff       	callq  1160 <printf@plt>
    2061:	8b 05 b1 2f 00 00    	mov    0x2fb1(%rip),%eax        # 5018 <speed>
    2067:	89 c0                	mov    %eax,%eax
    2069:	48 69 c0 d3 4d 62 10 	imul   $0x10624dd3,%rax,%rax
    2070:	48 c1 e8 20          	shr    $0x20,%rax
    2074:	89 c2                	mov    %eax,%edx
    2076:	c1 ea 06             	shr    $0x6,%edx
    2079:	8b 05 99 2f 00 00    	mov    0x2f99(%rip),%eax        # 5018 <speed>
    207f:	89 c6                	mov    %eax,%esi
    2081:	48 8d 3d 41 14 00 00 	lea    0x1441(%rip),%rdi        # 34c9 <_IO_stdin_used+0x4c9>
    2088:	b8 00 00 00 00       	mov    $0x0,%eax
    208d:	e8 ce f0 ff ff       	callq  1160 <printf@plt>
    2092:	90                   	nop
    2093:	c9                   	leaveq 
    2094:	c3                   	retq   

0000000000002095 <main>:
    2095:	f3 0f 1e fa          	endbr64 
    2099:	55                   	push   %rbp
    209a:	48 89 e5             	mov    %rsp,%rbp
    209d:	48 83 ec 10          	sub    $0x10,%rsp
    20a1:	89 7d fc             	mov    %edi,-0x4(%rbp)
    20a4:	48 89 75 f0          	mov    %rsi,-0x10(%rbp)
    20a8:	48 8b 55 f0          	mov    -0x10(%rbp),%rdx
    20ac:	8b 45 fc             	mov    -0x4(%rbp),%eax
    20af:	48 89 d6             	mov    %rdx,%rsi
    20b2:	89 c7                	mov    %eax,%edi
    20b4:	e8 c1 fd ff ff       	callq  1e7a <spi_init_test>
    20b9:	b8 00 00 00 00       	mov    $0x0,%eax
    20be:	e8 e1 fa ff ff       	callq  1ba4 <read_test>
    20c3:	b8 00 00 00 00       	mov    $0x0,%eax
    20c8:	e8 6c fb ff ff       	callq  1c39 <write_test>
    20cd:	b8 00 00 00 00       	mov    $0x0,%eax
    20d2:	e8 73 fd ff ff       	callq  1e4a <id>
    20d7:	8b 05 33 2f 00 00    	mov    0x2f33(%rip),%eax        # 5010 <fd>
    20dd:	89 c7                	mov    %eax,%edi
    20df:	e8 9c f0 ff ff       	callq  1180 <close@plt>
    20e4:	b8 00 00 00 00       	mov    $0x0,%eax
    20e9:	c9                   	leaveq 
    20ea:	c3                   	retq   
    20eb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)

00000000000020f0 <__libc_csu_init>:
    20f0:	f3 0f 1e fa          	endbr64 
    20f4:	41 57                	push   %r15
    20f6:	4c 8d 3d 93 2a 00 00 	lea    0x2a93(%rip),%r15        # 4b90 <__frame_dummy_init_array_entry>
    20fd:	41 56                	push   %r14
    20ff:	49 89 d6             	mov    %rdx,%r14
    2102:	41 55                	push   %r13
    2104:	49 89 f5             	mov    %rsi,%r13
    2107:	41 54                	push   %r12
    2109:	41 89 fc             	mov    %edi,%r12d
    210c:	55                   	push   %rbp
    210d:	48 8d 2d 84 2a 00 00 	lea    0x2a84(%rip),%rbp        # 4b98 <__do_global_dtors_aux_fini_array_entry>
    2114:	53                   	push   %rbx
    2115:	4c 29 fd             	sub    %r15,%rbp
    2118:	48 83 ec 08          	sub    $0x8,%rsp
    211c:	e8 df ee ff ff       	callq  1000 <_init>
    2121:	48 c1 fd 03          	sar    $0x3,%rbp
    2125:	74 1f                	je     2146 <__libc_csu_init+0x56>
    2127:	31 db                	xor    %ebx,%ebx
    2129:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
    2130:	4c 89 f2             	mov    %r14,%rdx
    2133:	4c 89 ee             	mov    %r13,%rsi
    2136:	44 89 e7             	mov    %r12d,%edi
    2139:	41 ff 14 df          	callq  *(%r15,%rbx,8)
    213d:	48 83 c3 01          	add    $0x1,%rbx
    2141:	48 39 dd             	cmp    %rbx,%rbp
    2144:	75 ea                	jne    2130 <__libc_csu_init+0x40>
    2146:	48 83 c4 08          	add    $0x8,%rsp
    214a:	5b                   	pop    %rbx
    214b:	5d                   	pop    %rbp
    214c:	41 5c                	pop    %r12
    214e:	41 5d                	pop    %r13
    2150:	41 5e                	pop    %r14
    2152:	41 5f                	pop    %r15
    2154:	c3                   	retq   
    2155:	66 66 2e 0f 1f 84 00 	data16 nopw %cs:0x0(%rax,%rax,1)
    215c:	00 00 00 00 

0000000000002160 <__libc_csu_fini>:
    2160:	f3 0f 1e fa          	endbr64 
    2164:	c3                   	retq   

Disassembly of section .fini:

0000000000002168 <_fini>:
    2168:	f3 0f 1e fa          	endbr64 
    216c:	48 83 ec 08          	sub    $0x8,%rsp
    2170:	48 83 c4 08          	add    $0x8,%rsp
    2174:	c3                   	retq   
